// pages/book_infor/book_infor.js
const app = getApp()
var is_upload=false
var average_color=0
var shop_price=0
Page({

    /**
     * 页面的初始数据
     */
    data: {
        fileList:[],
        bookname:"",
        ISBN:"",
        author:"",
        img:"",
        color: 0,
        price: 0,
        message: "",
        select:"circle",
        isTouchMove:false,
        num:1,
        url:"",
    },
    
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // console.log(options)
        let that = this
        const eventChannel = this.getOpenerEventChannel() 
        eventChannel.on('bookinforPage', function (res) {
          average_color=0
          shop_price=res.data.price
          that.setData({
              bookname:res.data.title,
              author:res.data.author,
              img:res.data.img,
              ISBN:res.data.isbn
          })
          // console.log(res)
          // console.log(res.data.ISBN)
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
      
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        const eventChannel = this.getOpenerEventChannel()
        eventChannel.emit('acceptDataFromOpenedPage', {data: this.data});
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    // 添加图片
    chooseImage(event) {
      const { file } = event.detail; // 获取图片路径
      const { fileList = [] } = this.data;
  
      // Compress the image
      this.compressImage(file.path).then((compressedFile) => {
        fileList.push({
          url: compressedFile, // 将压缩后的文件路径作为url存储
        });
  
        this.setData({
          fileList: fileList,
        });
  
        // 上传压缩后的图片
        this.uploadImage(compressedFile);
      });
    },
  
    // 图片压缩函数
    compressImage(filePath) {
      return new Promise((resolve, reject) => {
        wx.compressImage({
          src: filePath,
          quality: 50, // 压缩质量，范围0～100，数值越小，质量越低，压缩率越高（仅对jpg有效）。
          success: (res) => {
            resolve(res.tempFilePath); // 返回压缩后的文件路径
          },
          fail: (error) => {
            reject(error);
          },
        });
      });
    },
  
    // 上传图片
    uploadImage(filePath) {
      wx.showLoading({
        title: '正在分析成色...',
        mask: true
      });
      is_upload=false
      const that=this
      wx.uploadFile({
        filePath: filePath,
        name: 'image',
        url: app.globalData.url + '/uploadImage',
        formData: {
          uid: app.globalData.userInfo.uid,
          isbn: this.data.ISBN,
          filename: filePath,
          url: this.data.url,
        },
        success: (res) => {
          const { data } = res;
          this.setData({
            url: data,
          });
          is_upload=true
          //获取成色和应当售卖的价格
          wx.request({
            url:app.globalData.url+"/book_infor/GETSellInfo",
            data:{
              url:this.data.url,
              filename: filePath
            },
            success(res){
              if (res.data=="破损品相") {
                average_color+=0.7              
              }
              if (res.data=="一般品相") {
                average_color+=0.8
              }
              if (res.data=="优良品相") {
                average_color+=0.9
              }
              var len=that.data.fileList.length
              var match = shop_price.match(/[0-9.]+/);
              // 计算 color 和 price
              var color = (average_color / len).toFixed(1)*10+"";
              var price = (match * (average_color-0.3) / len).toFixed(1);
              shop_price=price
              wx.hideLoading();
              // 使用 setData 设置值（假设在 Page 的某个函数中）
              that.setData({
                  color: color,
                  price: price
              });

            }
          })
        },
        fail: (error) => {
          console.log(error);
        },
      });
    },
  
    //删除图片
    async deleimage(event) {
      let that = this
      var newlist = that.data.fileList
      var i = event.detail.index
      // console.log(event.detail)

    const {data:data} = await wx.p.request({
        url: app.globalData.url + '/deleteImage?url=' + this.data.url + '&filename=' + newlist[i].url,
        method: "DELETE"
    });
    if (data.data=="Delete success!") {
      newlist.splice(i, 1)
        this.setData({
            fileList: newlist
        })
    }
    },
    //书籍信息确认
    ok_book() {
        if (!is_upload) {
          wx.showToast({
            icon: 'error',
            title: '正在上传图片',
            duration: 1000
          })
        }else{
          wx.switchTab({
            url: '../Slling_book/Slling_book',
          })
        }

    },
    handleInput(value){
      console.log(shop_price);
      var that=this
      const regExp = /^\d*(\.\d{0,2})?$/;
      if (!this.data.color) {
        wx.showToast({
          title: '请先上传书籍图片',
          icon:"none"
        })
        that.setData({
          price:0
        })
      }
      if (!regExp.test(value.detail)) {
        wx.showToast({
          title: '输入数据不合规',
        })
        that.setData({
          price:0
        })
      }
      const inputValue = parseFloat(value.detail);
      if (inputValue>shop_price) {
        wx.showToast({
          title: '超过最大售卖价格',
          icon:"none"
        })
        that.setData({
          price:shop_price
        })
      }
    }



})